package com.sprouting.ops.service;


import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sprouting.ops.dao.OpsSysDictDao;
import com.sprouting.ops.dao.OpsSysDictGroupDao;
import com.sprouting.ops.model.OpsSysDict;
import com.sprouting.ops.model.OpsSysDictGroup;
import com.sprouting.ops.model.qo.OpsSysDictGroupQo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;

/**
 * 字典组;(OpsSysDictGroup)(OPS_SYS_DICT_GROUP) 表服务实现类
 *
 * @author ：lx（长沙麓谷）
 * @date 创建时间：2025-08-14 20:58:14
 */
@Service
@Slf4j
public class OpsSysDictGroupService extends ServiceImpl<OpsSysDictGroupDao, OpsSysDictGroup> {

    @Resource
    private OpsSysDictGroupDao opsSysDictGroupDao;
    @Resource
    private OpsSysDictDao opsSysDictDao;

    /**
     * 分页查询 字典组;
     * @param page 分页参数
     * @param query 查询参数
     * @return
     */
    public Page<OpsSysDictGroup> getListPage(Page page, OpsSysDictGroupQo query){
        return opsSysDictGroupDao.getListPage(page, query);
    }

    /**
     * 根据代码查询字典组
     * @param code 代码
     * @param id 字典组id，会过滤掉
     * @return
     */
    public OpsSysDictGroup getByCodeFilterId(String code, String id) {
        return opsSysDictGroupDao.getByCodeFilterId(code, id);
    }

    /**
     * 删除字典组
     * @param id 字典组id
     */
    @Transactional(rollbackFor = Exception.class)
    public void delOpsSysDictGroup(String id) {
        opsSysDictGroupDao.deleteById(id);

        LambdaUpdateWrapper<OpsSysDict> sysDictWrapper = new LambdaUpdateWrapper<>();
        sysDictWrapper.eq(OpsSysDict::getSysDictGroupId, id);
        opsSysDictDao.delete(sysDictWrapper);
    }
}
